unblurred outset shadow shader: Use premultiply()
authorTimm Bäder <mail@baedert.org>
Thu, 1 Oct 2020 04:18:37 +0000 (06:18 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 14 Oct 2020 19:06:12 +0000 (15:06 -0400)
gsk/resources/glsl/unblurred_outset_shadow.glsl

index fe7ad742d3ddf9b8b7ec243d92db0b84bbc1e1f3..f110370412ce9c138f9d9aab3c86bc118d8f941d 100644 (file)
@@ -11,9 +11,7 @@ _OUT_ _GSK_ROUNDED_RECT_UNIFORM_ transformed_inside_outline;
 void main() {
   gl_Position = u_projection * u_modelview * vec4(aPosition, 0.0, 1.0);
 
-  final_color = u_color;
-  final_color.rgb *= final_color.a;
-  final_color *= u_alpha;
+  final_color = gsk_premultiply(u_color) * u_alpha;
 
   GskRoundedRect inside = gsk_create_rect(u_outline_rect);
   GskRoundedRect outside = gsk_rounded_rect_shrink(inside, vec4(- u_spread));